# 1. 克隆小明创建的远程仓库（小红首次参与项目）
git clone https://github.com/小明的用户名/campus-library-system.git
cd campus-library-system

# 2. 配置小红的身份信息
git config user.name "XiaoHong"
git config user.email "xiaohong@school.com"

# 3. 从最新的 main 分支创建借阅功能分支
git checkout main
git pull origin main  # 拉取最新代码
git checkout -b feature/book-borrow

git add src/main/java/com/campus/service/BookService.java
git commit -m "feature: 新增图书借阅功能，实现borrowBook方法"
git push -u origin feature/book-borrow

# 1. 确保 main 分支是最新的
git checkout main
git pull origin main

# 2. 创建查询优化分支
git checkout -b feature/book-query-optimize


git add src/main/java/com/campus/service/BookService.java
git commit -m "optimize: 优化图书查询，新增按书名模糊查询方法"

# 推送优化分支到远程
git push -u origin feature/book-query-optimize

# 尝试合并到 main 分支（此时小红的借阅分支已提交，会产生冲突）
git checkout main
git pull origin main
git merge feature/book-query-optimize  # 暂时无冲突（因为小红的分支还没合并）

# 现在合并小红的 feature/book-borrow 分支，触发冲突！
git merge origin/feature/book-borrow

# 1. 标记冲突已解决（暂存修改后的文件）
git add src/main/java/com/campus/service/BookService.java

# 2. 提交合并结果（说明：“解决图书查询与借阅功能的冲突，合并测试代码”）
git commit -m "merge: 解决BookService的main方法冲突，合并模糊查询和借阅测试"

# 3. 推送合并后的 main 到远程
git push origin main


git checkout main
git pull origin main  # 确保代码是最新的

# 创建标签 v1.0.0，-a 表示带注释，-m 是注释内容
git tag -a v1.0.0 -m "v1.0.0：校园图书管理系统首个版本，包含图书查询（ID+书名模糊）和借阅功能"

# 查看标签列表（确认标签创建成功）
git tag  # 输出：v1.0.0

git push origin v1.0.0

# 1. 克隆仓库（或拉取最新代码）
git clone https://github.com/小明的用户名/campus-library-system.git
cd campus-library-system

# 2. 切换到 v1.0.0 标签（确保部署的是稳定版本）
git checkout v1.0.0

# 3. Maven 打包（跳过测试，快速打包）
mvn clean package -DskipTests

# 4. 部署 jar 包到服务器（省略具体部署命令，如 java -jar xxx.jar）

# 1. 查看所有标签，确认回滚目标
git tag  # 假设只有 v1.0.0，可回滚到合并前的提交（用 git log 找提交ID）

# 2. 回滚到 v1.0.0 之前的稳定提交（示例：假设提交ID是 a1b2c3d）
git checkout a1b2c3d

# 3. 重新打包部署
mvn clean package -DskipTests